﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Business_Entity;
namespace Business_Logic
{
    public class BLPedidoCompra
    {
        private BEPedidoCompra PedidoCompra;
        private List<EstadoPC> lstEstados;
        private List<Business_Entity.BEProductoProveedor> lstProductos;
        public BLPedidoCompra()
        {
            lstEstados = new List<EstadoPC>();
            lstEstados.Add(new EstadoPC(1, "SOLICITADO"));
            lstEstados.Add(new EstadoPC(2, "RECEPCIONADO PARCIALMENTE"));
            lstEstados.Add(new EstadoPC(3, "RECEPCIONADO TOTALMENTE"));
            lstEstados.Add(new EstadoPC(4, "RECIBIDO PARCIALMENTE"));
            lstEstados.Add(new EstadoPC(5, "RECIBIDO TOTALMENTE"));
        }
        public BEPedidoCompra getPedidoCompra()
        {
            return null;
        }
        public int AgregarPedidoCompra(BEPedidoCompra bePC)
        {
            return DAOFactory.DAOPedidoCompra.AddDBPedidoCompra(bePC);
        }
        public void EliminarPedidoCompra(int id)
        {
            DAOFactory.DAOPedidoCompra.DeleteDBPedidoCompra(id);
        }
        public void ActualizarPedidoCompra(BEPedidoCompra bePC)
        {
            DAOFactory.DAOPedidoCompra.UpdateDBPedidoCompra(bePC);
        }
        public void EliminarLineaPedidoCompra(int id)
        {
            DAOFactory.DAOPedidoCompra.DeleteDBLineaPedidoCompra(id);
        }
        public void AgregarLineaPedidoCompra(BELineaPedidoCompra beLOC, int id)
        {
            DAOFactory.DAOPedidoCompra.AddBDLineaPedidoCompra(beLOC, id);
        }
        public BEPedidoCompra BuscarPedidoCompra(int id)
        {
            return DAOFactory.DAOPedidoCompra.getPedidoCompra(id);
        }
        public List<BEPedidoCompra> BuscarPedidoCompra(int Codigo, String FecIni, String FecFin, String Proveedor)
        {
            return DAOFactory.DAOPedidoCompra.getpedidosCompra(Codigo, FecIni, FecFin, Proveedor);
        }
        public List<String> getEstadosPedCompra()
        {
            List<String> estados;
            estados=DAOFactory.DAOPedidoCompra.getEstadosPedidosCompra();
            estados.Add("<Seleccionar>");
            return estados;
        }
        public List<BELineaPedidoCompra> getLineaPedidosCompra(int id){
        	
        	return DAOFactory.DAOPedidoCompra.getDBListaLineaPedidoCompra(id);
        }
        public void ActualizarLineaPedidoCompra(BELineaPedidoCompra be){
        	DAOFactory.DAOPedidoCompra.UpdateDBLineaPedidoCompra(be);
        }
        public String getEstadoSeleccionado(int eleccion)
        {
            return lstEstados[eleccion-1].SEstado;
        }
        public int getintEstadoSeleccionado(String strSeleccionado)
        {
            for (int i = 0; i < 5; i++)
            {
                if (lstEstados[i + 1].SEstado.CompareTo(strSeleccionado) == 0)
                {
                    return lstEstados[i + 1].IEstado;
                }
            }
            return -1;
        }
        public List<BEProveedor> getProveedoresxProducto(Business_Entity.BEProductoProveedor bePP)
        {
            return bePP.listaProveedores;
        }
        public List<Business_Entity.BEProductoProveedor> getproductos()
        {
            return lstProductos;
        }
        //        public List<Business_Entity.Compras.BEProductoProveedor> Buscarproductos()
        //        {
        //            return null;
        //        }
        public List<BEPedidoCompra> BuscarPedidoCompra(int id,String tipo, String feca,String fecb,String fecc,String fecd,String fece,String fecf)
        {
            return DAOFactory.DAOPedidoCompra.getDBListaPedidoCompra(id,tipo,feca,fecb,fecc,fecd,fece,fecf);
        }
        class EstadoPC
        {
            private String StrEstado;
            private int intEstado;
            public EstadoPC()
            {
            }
            public EstadoPC(int id, String strest)
            {
                intEstado = id;
                StrEstado = strest;
            }
            public int IEstado
            {
                get { return intEstado; }
                set { intEstado = value; }
            }
            public String SEstado
            {
                get { return StrEstado; }
                set { StrEstado = value; }
            }
        }
    }
}
